package tp.tecnicasdisenio.dao;

import java.util.ArrayList;

public interface DaoInterface <T, C>{
	
	/**
	 * Obtiene el objeto de la clase correspondiente por su id
	 * @param id es el atributo identificador del objeto
	 * @return el objeto que corresponde al id. Si no hay resultado, null
	 */
	public T getPorId(C id);
	
	/**
	 * Obtiene todos los objetos de la clase asociada
	 * @return una lista con todos los objetos de la clase en la base de datos. Si no hay resultado, una lista vacia
	 */
	public ArrayList<T> obtenerTodos();
	
	/**
	 * Borra de la base de datos la entidad especificada
	 * @param entidad especifica la entidad a ser borrada de la base de datos
	 */
	public void borrar(T entidad);
	
	/**
	 * Actualiza la entidad especificada 
	 * @param entidad especifica la entidad a ser actualizada
	 */
	public void actualizar(T entidad);
	
	/**
	 * Inserta la entidad especificada
	 * @param entidad especifica la entidad a ser insertada en la base de datos
	 */
	public void insertar(T entidad);

}
